package com.meituan.sdk.model.pms.accounting.sellSmallWare;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 商品售卖
* This file was automatically generated.
*/
@ApiMeta(
    path = "/pms/accounting/sellSmallWare",
    businessId = 57,
    apiVersion = "10013",
    apiName = "sell_small_ware",
    needAuth = true
)
public class SellSmallWareRequest implements MeituanRequest<SellSmallWareResponse> {
    /**
    * <p data-diff-id="ct-diff-id-78dc1f9a-b026-4219-83d7-b7d4ccddd4d8">酒店ID</p>
    */
    @NotNull(message = "hotelId不能为空")
    @SerializedName("hotelId")
    private Long hotelId;
    /**
    * <p data-diff-id="ct-diff-id-8f56d062-d833-4511-9d01-f4b14b27d217"><span style="color: #333">账单ID</span></p>
    */
    @NotNull(message = "billId不能为空")
    @SerializedName("billId")
    private Long billId;
    /**
    * <p data-diff-id="ct-diff-id-766121f5-21bf-41ad-9926-8bd823968706"><span style="color: #333">金额</span></p>
    */
    @NotBlank(message = "amount不能为空")
    @SerializedName("amount")
    private String amount;
    /**
    * <p data-diff-id="ct-diff-id-07952b4b-909d-419a-bcd0-e3694f2faddf"><span style="color: rgb(51, 51, 51)">消费科目</span></p><table data-borderwidth="1" data-diff-id="ct-diff-id-97878d9e-bf97-441e-9bf3-927589d16da0"><tbody><tr data-row-diff-id="ct-tr-diff-id-a58235f0-307a-4318-820c-10b6770b4e46"><th data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-59b37d8d-c0f7-41ff-8bbd-5840c34732f8"><p data-diff-id="ct-diff-id-56eded6d-e0b6-43c1-b737-6eb873d9842f">科目名称</p></th><th data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-4ec9f949-39e1-4ba0-828c-b0eb8636e200"><p data-diff-id="ct-diff-id-3bcb184e-3c50-401d-9583-a03310fad03f"><span style="color: rgb(51, 51, 51)">消费科目</span></p></th><th data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-3db5fbfc-6b97-4ba4-b4ca-24c8d681b5df"><p data-diff-id="ct-diff-id-dd0aa5ac-8385-440d-8a24-e335f5341f03">调整科目</p></th></tr><tr data-row-diff-id="ct-tr-diff-id-5535a16a-0fbb-4f8b-96d1-a932b4a35f1b"><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-76bd7b5f-7036-4907-9f6e-a273eaefd169"><p data-diff-id="ct-diff-id-35cd3104-fbb3-4225-8bbf-da2912ef3e2b">小商品</p></td><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-81143b37-cf00-4a19-ad45-7d10952ac64d"><p data-diff-id="ct-diff-id-dee13458-7f72-412e-b603-8d14cabc110c">D0301</p></td><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-9a0ebf2f-3f0a-4fb2-aa10-9a393489c161"><p data-diff-id="ct-diff-id-9d02d2a7-bfd5-472b-bade-53598490f083">D0302</p></td></tr><tr data-row-diff-id="ct-tr-diff-id-0f6a237d-ef5e-49a0-ac2c-cd211368577f"><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-e5018323-59ac-42b8-8efe-9e6bdacfcf0f"><p data-diff-id="ct-diff-id-73f2c1e9-3f3b-4bf3-b74e-ba529f12f00e">赔偿费</p></td><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-05842259-0089-4846-b43a-1a70a00d973d"><p data-diff-id="ct-diff-id-0981cc4e-1436-401c-85c3-8f9b61cac878">D1001</p></td><td data-colwidth="92" width="92" data-cell-diff-id="ct-cell-diff-id-ee7856b2-733e-4201-b1fe-88da998eadb9"><p data-diff-id="ct-diff-id-5126d4b3-98b3-47f7-ae9e-e3f9edbc2dc7">D1002</p></td></tr></tbody></table><p data-diff-id="ct-diff-id-4f9af47a-63b6-46e9-8083-72e0c688c385"></p>
    */
    @NotBlank(message = "debitCode不能为空")
    @SerializedName("debitCode")
    private String debitCode;
    /**
    * <p data-diff-id="ct-diff-id-30a7364c-556a-42c2-b1ca-f8fcd37bdc3e"><span style="color: #333">是否赔偿物品</span></p>
    */
    @NotNull(message = "compensation不能为空")
    @SerializedName("compensation")
    private Boolean compensation;
    /**
    * <p data-diff-id="ct-diff-id-1c447a96-40aa-493b-9afb-87bcfa65787a"><span style="color: #333">明细</span></p>
    */
    @NotEmpty(message = "smallWareOrderItemList不能为空")
    @SerializedName("smallWareOrderItemList")
    private List<SmallWareOrderItemDTO> smallWareOrderItemList;
    /**
    * <p data-diff-id="ct-diff-id-31d996ae-4a7f-403f-b789-60419b1a0112">备注</p>
    */
    @SerializedName("memo")
    private String memo;

    public Long getHotelId() {
        return hotelId;
    }
    public void setHotelId(Long hotelId) {
        this.hotelId = hotelId;
    }
    public Long getBillId() {
        return billId;
    }
    public void setBillId(Long billId) {
        this.billId = billId;
    }
    public String getAmount() {
        return amount;
    }
    public void setAmount(String amount) {
        this.amount = amount;
    }
    public String getDebitCode() {
        return debitCode;
    }
    public void setDebitCode(String debitCode) {
        this.debitCode = debitCode;
    }
    public Boolean getCompensation() {
        return compensation;
    }
    public void setCompensation(Boolean compensation) {
        this.compensation = compensation;
    }
    public List<SmallWareOrderItemDTO> getSmallWareOrderItemList() {
        return smallWareOrderItemList;
    }
    public void setSmallWareOrderItemList(List<SmallWareOrderItemDTO> smallWareOrderItemList) {
        this.smallWareOrderItemList = smallWareOrderItemList;
    }
    public String getMemo() {
        return memo;
    }
    public void setMemo(String memo) {
        this.memo = memo;
    }


    @Override
    public MeituanResponse<SellSmallWareResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<SellSmallWareResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "SellSmallWareRequest{" + "hotelId=" + hotelId + "," + "billId=" + billId + "," + "amount=" + amount + "," + "debitCode=" + debitCode + "," + "compensation=" + compensation + "," + "smallWareOrderItemList=" + smallWareOrderItemList + "," + "memo=" + memo + "}";
    }
}
